fix(desktop): keep the @ mention list steady and pick the row you see - #7197
fix(desktop): keep the @ mention list steady and pick the row you see#7197loganj wants to merge 3 commits into
Conversation
3916b7d to
d287d89
Compare
e27e770 to
eec6f58
Compare
d287d89 to
a09ca69
Compare
eec6f58 to
8478cfa
Compare
a09ca69 to
1a8a942
Compare
8478cfa to
3d9452a
Compare
|
🤖 Stable-picker rewrite — integrated captureCaptured from exact integrated Fresh Create/Add, then first completionThe newly added Fresh Scout appears in the next opened list. Displayed same-name identities before TabThis capture is BEFORE Tab (despite the filename). The browser then changes presence data, asserts unchanged identities/order, presses Tab and checks the displayed first identity is inserted. Two exact identities after Tab and clickThe first selected Scout keeps its short label; selecting the other reserves the full-key qualified label. The test subsequently checks the exact two signed recipient tags. |
1a8a942 to
86ba5b3
Compare
30795ba to
6372d0e
Compare
6372d0e to
f8bbe95
Compare
6b78dec to
fb593a7
Compare
fa638cb to
4c9aaa8
Compare
15c89f8 to
b1db170
Compare
b354256 to
b326af3
Compare
b1db170 to
ed5a2f4
Compare
Co-authored-by: Larry <627498bd4bd1f281a16431e3c6cce3b5c25b6692798c78672298aefbf2f8f8b5@buzz.block.builderlab.xyz> Signed-off-by: Logan Johnson <loganj@squareup.com>
Co-authored-by: Larry <627498bd4bd1f281a16431e3c6cce3b5c25b6692798c78672298aefbf2f8f8b5@buzz.block.builderlab.xyz> Signed-off-by: Logan Johnson <loganj@squareup.com>
Co-authored-by: Larry <627498bd4bd1f281a16431e3c6cce3b5c25b6692798c78672298aefbf2f8f8b5@buzz.block.builderlab.xyz> Signed-off-by: Logan Johnson <loganj@squareup.com>
ed5a2f4 to
75f61d7
Compare
b326af3 to
0464384
Compare



🤖
Summary
Stops the @ mention suggestion list from moving under you, and makes Tab, Enter, and click commit exactly the row you see.
Scope: display stability only. Permission is still checked live when you choose (#7196) and revalidated at publication; the native editor fixes (highlighting, Enter, caret) are #7323, and the recipient persistence evidence is #7190. The obsolete mention debounce helper that used to paper over the Tab/Enter race is deleted here, together with its test suite.
Part of the mention-chooser stack on the shared #7190 recovery prerequisite: #7190 → #7196 → #7323 → #7197 → #7239 → #7240. This feature stack remains separate from #7191 → #7192. This PR builds directly on #7323.
Related issue
Continues the merged mention-editor work from #7124 (authorize remote mentions at publication) and #7128 (preserve spacing after multi-word mentions). No separate tracking issue for this slice.
Testing
composerAgentKeyboard.test.mjs,useAgentAddressLockPicker.test.mjs, andmentionAdmissionJourney.test.mjscover the request lifecycle, stable installation, selection, and closure.mention-picker.spec.ts,mentions.spec.ts,remote-owned-mentions.spec.ts,team-mentions.spec.ts, andpersistent-agent-audience.spec.tscover stable rows under background changes, Tab/Enter/click committing the displayed identity (including same-name rows), caret-departure dismissal, and no waiting on a missing destination.docs/mention-editor.mddocuments the stable-completion contract.Historical capture state (not these heads)
The following original captions/links are retained as historical capture evidence only; none is relabeled as this restack.
Historical visuals — not this rewrite
These immutable captures illustrate the superseded contract (Tab used to refuse ambiguous rows). They are retained for provenance, not evidence of current Tab behavior. Earlier integrated captures are linked below; they do not replace these historical captions.
Historical capture (superseded policy): Tab chooses Scout without an exact choice
At parent revision
6c373187, the example has two recipients named Scout. Tab closes the list and turns the text into a mention for one recipient.Historical capture (superseded policy): Tab keeps the draft and both choices
At revision
e27e770e, Tab leaves@Scoutas text and keeps both recipients available.Historical capture (superseded policy): choosing both recipients keeps them separate
Click the second Scout. Type
and @Scout, choose the first Scout, then typehello. The two labels stay separate. One label includes a recipient identifier. The browser test checks that the signed message contains only the two chosen recipient identifiers, in choice order. It does not prove server acceptance or permission to respond.Integrated stable-picker visuals
Captured integrated f638b9cb — not standalone PR5 and not a capture of this correction. These still illustrate stable rows, action labels and next-open ranking; the earlier correction changed null-destination readiness and fixtures, not those pictured channel states. The duplicate-row image is before Tab, as captioned. No image proves access or delivery.
Extraction validation update